| 简短说明 | |
|---|---|
|
文件: \examples\Processing\Loop\RollingAverage\rollingAverage_Loop.vad |
|
|
默认平台: imaFlex CXP-12 Quad |
|
|
简要说明 在不引入帧延迟的情况下,在连续图像流上实现滚动平均值。 计算最后 N 幅单色图像的平均值,并用于以彩色可视化与当前图像的差分结果。 用于计算平均值的图像数量默认设为 128,但可以进行修改。 |
|
此设计展示了滚动平均值的工作原理。 但核心要素是一个能够支持更多应用和机器视觉操作的循环。 为了解循环的工作原理及其实现方式,这个示例是一个绝佳的起点。
计算每个单像素的平均值,并将其归一化到 8 bit 的输入值范围内。 为此,将接收到的每一帧与其前几帧相加,并除以接收到的帧数。 如果达到滚动平均序列的长度,则总和会减去存储和延迟的帧。 这样,从第一幅图像开始就已经生成了输出图像。
在该设计中,两个条件定义了滚动平均序列的长度。 这两个值都称为 N_rolling,且需要设置为相同的值。 一个用于处理减影图像的延迟存储过程,另一个用于像素值归一化。
使用 RxImageLink 和 TxImageLink 算子来实现循环处理。 输入图像序列中未归一化的平均和在一个循环中处理。 需要第二个循环处理来存储输入的帧,以便后续减去其像素值。 每个循环都需要与输入的相机帧同步。 这就引入了一个需要满足启动条件的 SYNC 算子。 启动条件本身由 InsertImage 处理,其中首次运行会引入单个最小帧。 所使用的 SYNC 会将帧尺寸最大化至所需的值。
由于平均处理需要存储一定数量的帧,因此使用了 ImageBufferMultiRoiDyn 算子。 在满足同步目的的同时,只需简单地存储前几幅图像,并由生成的最小帧来辅助完成。
使用 VA 仿真将有助于详细了解该功能如何围绕 SYNC 运行。 通常,一系列人工生成的最小帧可实现同步。
实现了两种不同的可视化方式。第一种将生成一个 24 bit 的 RGB 图像,其中:
- 通道 - 内容
- 红色 (RED) - 当前图像
- 绿色 (GREEN) - 平均图像
- 蓝色 (BLUE) - 差分图像
第二种方法基于 HSL 色彩空间,随后将其转换为 24bit RGB:
- 通道 - 内容
- 色相 (HUE) / 色彩角度 - 差分图像,其中最小值为绿色
- 饱和度 (SATURATION) - 设置为最大值
- 亮度 (LIGHTNESS) - 当前图像
第二种方法通过 EffectEnable = 1 开启。 动态增益因子可用于对所有色相角度进行差分 Scaling。

上一页

